import request from '@/utils/request'
import moment from 'moment'

export function getEmployeeList(params) {
  const formOfEmploymentMapping = new Map([
    [1, '未知'],
    ['1', '未知'],
    [2, '正式'],
    [3, '非正式']
  ])

  return request({
    url: '/sys/user',
    params
  })
    .then(res => ({
      rows: res.data.data.rows.map((d, i) => ({
        ...d,
        // 第1页 第5条 >>> 5
        // 第2页 第2条 >>> 12
        // 第2页 第9条 >>> 19
        // 第3页 第3条 >>> 23
        // 第(params.page)页 第(i + 1)条 >>> 23
        index: (params.page - 1) * params.size + i + 1,
        // d.formOfEmployment: 1 >>> 未知
        // d.formOfEmployment: 2 >>> 正式
        // d.formOfEmployment: 3 >>> 非正式
        formOfEmployment: formOfEmploymentMapping.get(d.formOfEmployment),
        timeOfEntry: moment(d.timeOfEntry).format('YYYY-MM-DD')
      })),
      total: res.data.data.total
    }))
    .catch(() => ({}))
}

export async function getAllEmployeeList() {
  const formOfEmploymentMapping = new Map([
    [1, '未知'],
    ['1', '未知'],
    [2, '正式'],
    [3, '非正式']
  ])

  const total = await request({
    url: '/sys/user',
    params: {
      page: 1,
      size: 10
    }
  })
    .then(res => res.data.data.total)

  return request({
    url: '/sys/user',
    params: {
      page: 1,
      size: total
    }
  })
    .then(res => ({
      rows: res.data.data.rows.map((d, i) => ({
        ...d,
        index: i + 1,
        formOfEmployment: formOfEmploymentMapping.get(d.formOfEmployment),
        timeOfEntry: moment(d.timeOfEntry).format('YYYY-MM-DD')
      })),
      total: res.data.data.total
    }))
    .catch(() => ({}))
}

export function addEmployee(params) {
  return request({
    url: '/sys/user',
    method: 'post',
    data: params
  })
    .then(res => res.data.message)
    .catch(err => Promise.reject(err.response.data.message))
}
